
/*
 * Class Entite ; C'est une liste de type champ
 * 
 */

package gestion_de_mp3.Modeles;

import java.util.Vector;
import org.w3c.dom.Node;
/**
 *
 * @author Demonn
 */
    public class Entite {
    Vector<Champ> champ; 
    String balise;
    /**
     * Le contructeur
     */
    public Entite(String balise){
        this.balise=balise;
        champ =new Vector<Champ>();
    }
   /**
     * Recupere un ensemble de champ
     */
    public Vector<Champ> getChamps()
    {
        return champ;
    }
    public void addObject(Champ c){
        champ.add(c);        
    }
   
    public void setBalise(String b)
    {
        balise=b;
    }
    public String getBalise()
    {
        return balise;
    }
    /**
     * Parcourir et afficher les données dans la champ
     */
    public void AfficherLesInfos(){
        System.out.println(getBalise());
        for(int i=0;i<champ.size();i++)
        {
            System.out.println(getBalise()+ "  " + champ.get(i));
        }
    }
    /**
     * Prendre le contenu de la balise
     */
    public String getTextFromBalise(String s)
    {
        for(int i=0;i<champ.size();i++){
            if(s.equals(champ.get(i).getBalise()))
            return champ .get(i).getBalise() + "  " + champ.get(i).toString();
        }
    return null;
    }
    /**
     * Parcourir tous les child node et stocker dans chaque champ
     */
    public void parcourirNoeud(Node noeud)
    {
        org.w3c.dom.NodeList children = noeud.getChildNodes();
        if ( children != null ) {
        int len = children.getLength();
        for ( int i = 0; i < len; i++ ) 
         {
            org.w3c.dom.Node n = (org.w3c.dom.Node)children.item(i);
            if (n.getNodeType()==Node.ELEMENT_NODE)
            { 
                if ( ("listetype".equals(n.getNodeName())))
                {
                    champ.add(new Champ(n.getNodeName(),n));
                }
                else if ( "id".equals(n.getNodeName())) 
                    champ.add(new Champ(n.getNodeName(),Integer.parseInt(n.getTextContent())));
                    
                else 
                {
                    champ.add(new Champ(n.getNodeName(),n.getTextContent()));
                }
              }
            }
        }
    }
    
    /**
     * Parcourir le noeud ListType
     */
    public void parcourirListeType(Node noeud)
    {
        org.w3c.dom.NodeList children = noeud.getChildNodes();
        if ( children != null ) {
            int len = children.getLength();
             for ( int i = 0; i < len; i++ ) 
             {
                  org.w3c.dom.Node n = (org.w3c.dom.Node)children.item(i);
                  if (n.getNodeType()==Node.ELEMENT_NODE)
                   { 
                      champ.add(new Champ(n.getNodeName(),Integer.parseInt(n.getTextContent())));
                    }
              }
        }
       
    }
    @Override
    public String toString()
    {
        return champ.lastElement().getData();
    }
 
}
